package com.authine.cloudpivot.ext.service;

import com.authine.cloudpivot.ext.dto.OrderCustomerDto;
import com.authine.cloudpivot.ext.dto.OrderVendorDto;
import com.authine.cloudpivot.ext.dto.OrderVendorGoodsDto;
import com.authine.cloudpivot.ext.dto.api.OrderDeliverVO;
import com.authine.cloudpivot.ext.dto.api.TempOrderReceipt;
import com.authine.cloudpivot.ext.utils.system.SessionUser;
import com.authine.cloudpivot.ext.vo.OrderGoodsV1VO;
import com.authine.mvp.app.launcher.dto.bo.response.BOList;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * @Author: liwei
 * @DateTime: 2021/9/4
 * @Description: TODO
 */
public interface OrderVendorBaseV1Service {


    BOList vendorOrderByPageContainVendor(OrderVendorDto orderVendorDto);

    BOList listOrderVendorGoodsContainMemberIds(OrderVendorGoodsDto orderVendorGoodsDto);

    List<OrderGoodsV1VO> transferOrderVendorGoodsV1VOList(BOList boList);

    String verifyOrderDeliverVO(List<OrderDeliverVO> orderDeliverVOS);

    List<String> getCloudDeliverGoods(List<String> virtualVendorGoodsIds);

    Map<String, BigDecimal> getDeliverableQuantity(List<Map<String, Object>> vendorOrderGoodsList);

    TempOrderReceipt deliver(List<OrderDeliverVO> orderDeliverVOS, SessionUser sessionUser);
}
